#include <iostream>
using namespace std;

// 静态成员函数
// 所有对象共享同一函数
// 静态成员函数只能访问静态成员变量

class Person
{
public:
    //静态成员函数
    static void func()
    {
        money = 100; // 静态成员函数，可以访问静态成员变量

        // error: age = 20;  // 静态成员函数，不可以访问 非静态成员变量
        cout << "static void func调用" << endl;
    }

    static int money;//静态成员变量
    int age;//非静态成员变量

    //静态成员函数，也可以有访问权限
private:
    static void func2()
    {
        cout << "static void func2调用" << endl;
    }
};
int Person::money = 3000;

//有两种访问方式
void test1()
{
    //1、通过对象进行访问
    Person p;
    p.func();

    //2、通过类名访问
    Person::func();

    //error: Person::func2();   类外无法访问私有函数
}

int main()
{
    test1();
    return 0;
}